#include <stdio.h>
int count = 20;

// 输出0+5=5
int fn() {
	printf("输入一个正整数:");
	int n;
	scanf("%d",&n);
	int i=0,j=n;
	for(; i<=n; i++,j--) {
		printf("%d + %d = %d\n",i,j,i+j);
	}
	printf("%d + %d = %d\n",i,j,i+j);
}

// 当数字的和>=120时，问加到哪个数字了？
int fn1() {
	int sum = 0;
	int i = 0;
	for(; i<=100; i++) {
		sum+=i;
		if(sum>=120) {
			break;
		}
	}
	printf("i=%d\n",i); // i=15
	count +=200;
	return sum;
}

// 统计有效字符数字
int fn2() {
	int count=0,code;
	printf("输入一串字符:");
	while((code=getchar())!='\n') {
		if(code==' ') {
			break;
		}
		count++;
	}
	printf("\n共有%d个有效字\n",count);
	return 0;
}

// continue语法
int fn3() {
	int sum = 0;
	for(int i= 1; i<=100; i++) {
		if(i%10==3) {
			continue;// continue break return 一旦执行，后面的语句不会再执行
		}
		sum+=i;
		printf("i=%d,sum=%d\n",i,sum);
	}
	printf("sum=%d",sum);
	return 0;
}

// 输出n层的菱形
int fn4() {
	int h;
	printf("请输入菱形的层高：");
	scanf("%d",&h);
	if(h<=0) {
		printf("菱形的层高至少1层");
		// return 的作用是终止正在执行的函数，如果后面有结果，则返回这个结果给调用者
		return 0;
	}
	// 输入的是偶数，层高加1
	if(h%2==0) {
		h++;
	}
	// 计算上下两个部分的三角形的层高
	int up = h/2 + 1;
	int down = h - up;
	// 开始绘制上边的等腰三角形
	for(int i=0; i<up; i++) {
		// 空格
		for(int j=0; j<up-i-1; j++) {
			printf(" ");
		}
		// *
		for(int j =0; j<2*i+1; j++) {
			//if(j==0||j==2*i) {
			printf("*");
			//} else {
			//printf(" ");
			//}
		}
		// \n
		printf("\n");
	}
	// 开始绘制下边的倒等腰三角形
	for(int i=0; i<down; i++) {
		// 空格
		for(int j =0; j<=i; j++) {
			printf(" ");
		}
		// *
		for(int j =0; j<2*(down-i)-1; j++) {
			//if(j==0||j==2*(down-i)-2) {
			printf("*");
			//} else {
			//printf(" ");
			//}
		}
		// \n
		printf("\n");
	}
	return 0;
}



// 求质数
int fn5(){
	int count = 0;
	for(int i =100;i<=200;i++){
		int j = 2;
		while(i%j!=0){
			j++;
		}
		if(i==j){
			printf("%d,",i);
			count++;
			if(count%8==0){
				printf("\n");
			}
		}
	}
	return 0;
}

// do-while和for循环嵌套
int fn6(){
	int num;
	char ch;
	do{
		printf("输入一个数字:");
		scanf("%d",&num);
		fflush(stdin);
		printf("\n");
		for(int i=0;i<30;i++){
			printf("=");
		}
		printf("\n");
		printf("您输入的数字是%d\n",num);
		printf("您是否继续输入其他数(y/n):");
		ch = getchar();
		fflush(stdin);
	}while(ch!='n');
}

/*
	函数的四要素：
		1 返回值类型，函数的修饰符
			int fn(){ return 1; }
			double fn(){return 1.0;}
			void fn(){ }
		2 函数的名称：fn,fn1,main,定义时符合变量名命名规则
		3 函数的形式参数列表
			int fn(int a,int b){ return a+b; }
			a = 10;
			int rt = fn(1,2); // rt = 3
			int a,int b 就是形参列表
			1,2是函数调用时实际参数
			int a=1,int b=2
		4 函数体
			int fn(int a,int b){ // 函数体 }
	函数的特征：
		1 函数中定义的变量是局部变量，不可以在函数外使用。
		2 函数可以被重复使用
		3 在程序中多次重复出现的功能代码，可以对其抽离，声明成函数
*/

int main() {
	// int n = fn1();
	// printf("sum=%d\n",n);
	// printf("count=%d",count);
	fn6();
	return 0;
}